延續上上一篇「github, gitlab設定不同SSH key」。
在創建github, gitlab的SSH碼之後,因為犯蠢原本的專案沒有git init,所以他會抓不到現在要連結哪個遠端版本庫,但我以為是因為SSH沒有正確連結到,所以當他在詢問 (YES/ NO/ fingerPrint) 的時候就直接複製下面的 fingerPrint 貼上。(但其實只要寫下YES應該就沒事了)
The key fingerprint is:
SHA256:43K1jWPQ3r+2n0yLTDXscG0pFLy07pnh7iAcPNQ02Q0 y3m45566@gmail.com

後來就有強制推成功,只是push的人變成是用我本機設定的名字,而不是github的帳號。

這件事結束之後,發現我原本設定兩個SSH key都消失了
雖然很莫名其妙就消失了,但後來就重辦,再綁定github, gitlab就好。
隔天我在開新專案的時候,照例使用 npm init 卻發現沒有這個指令,而node, npm也都沒有。
那也沒關係就重新下載。
由於我的專案有使用 readline/promise ,node版本有用volta切換成 18.7.0 才能運行。
現在回到這個環境裡,使用 node q1.js , node -v , npm -v 都出現:
Volta error: Node is not available.
To run any Node command, first set a default version using `volta install node`
Error details written to /Users/chenziyu/.volta/log/volta-error-2022-08-16_14_15_04.052.log
再次重新下載之後會顯示:
success: installed and set node@16.16.0 as default
   note: you are using node@18.7.0 in the current project
雖然成功下載了,但我卻無法使用,指令 node -v , npm -v 也還是不行。
於是我嘗試把 package.json 的 vlota { node: 18.7.0 } 刪除之後再輸入那些指令都可以了。
可是我必須使用node: 18.7.0的版本才能運行我的專案!
以上這些事情在terminal也一樣。如果版本是 node 18.7.0 就都無法使用指令
後來我用 volta pin node@17 指令換成同樣也可以運行我專案的版本就可以了。
其他功能都可以正常使用。
這是當下的折衷方案,依然不知道問題出在哪?
第一步要先會查找已經安裝過的版本在哪裡,指令如下:
% volta list --verbose all
會出現:
⚡️ User toolchain:
    Node runtimes:
        v16.15.0
        v16.16.0 (default)
        v17.9.1
        v18.6.0
        v18.7.0
    Package managers:
        npm:
            v8.17.0 (default)
    Packages:
        sass@1.51.0 (default)
            binary tools: sass
            platform:
                runtime: node@16.15.0
                package manager: npm@built-in
所以我們現在知道volta儲存了這幾個node的版本。
接下來要怎麼uninstall node@18.7 ? 官網並沒有提供刪除版本的方式。
於是找到這篇文章:
https://github.com/volta-cli/volta/issues/855
有人詢問這個issue,volta的人有提供路徑去刪除。
路徑查找:(從本機)
% .volta/tools/image/node/%LOCALAPPDATA%\Volta\tools\image\node\
執行流水帳,but important to me
chenziyu@chenziyudeMacBook-Air ~ % ls
Applications            Js30                    Public                  movie                   t4                      文件
Desktop                 Library                 README.md               practice                t6
Documents               Movies                  component-testing       t1                      t7.1
Downloads               Music                   j1                      t2                      test
J17_test                Pictures                mood.pages              t3                      tutorial
chenziyu@chenziyudeMacBook-Air ~ % cd .volta 
chenziyu@chenziyudeMacBook-Air .volta % ls
bin             cache           layout.v3       log             tmp             tools           volta.lock
chenziyu@chenziyudeMacBook-Air .volta % cd tools 
chenziyu@chenziyudeMacBook-Air tools % ls
image           inventory       shared          user
chenziyu@chenziyudeMacBook-Air tools % cd image 
chenziyu@chenziyudeMacBook-Air image % ls
node            npm             packages        yarn
chenziyu@chenziyudeMacBook-Air image % cd node 
chenziyu@chenziyudeMacBook-Air node % ls
16.15.0 16.16.0 17.9.1  18.6.0  18.7.0
chenziyu@chenziyudeMacBook-Air node % ls -al
total 0
drwxr-xr-x  7 chenziyu  staff  224  8 16 17:40 .
drwxr-xr-x  6 chenziyu  staff  192  4 29 11:42 ..
drwxr-xr-x  6 chenziyu  staff  192  8 15 16:46 16.15.0
drwxr-xr-x  9 chenziyu  staff  288  8 16 13:20 16.16.0
drwxr-xr-x  9 chenziyu  staff  288  8 16 14:17 17.9.1
drwxr-xr-x  9 chenziyu  staff  288  8 16 17:40 18.6.0
drwxr-xr-x  6 chenziyu  staff  192  8 15 16:46 18.7.0
chenziyu@chenziyudeMacBook-Air node % rm -rf 18.7.0 
然後再安裝一次之後 node -v

就正常了~撒花!
如果版本有問題就刪掉再重裝!
刪掉不難知道路徑比較難。
很多提供刪除的方法都是直接uninstall,但只需要刪除下載過的版本就好,而這個不能用 uninstall 的方式,需要直接去volta儲存的資料夾刪除。
感謝 Chris 的幫忙~~
參考資料:Volta Node is not available when opening a bash terminal #1007
Unclear how to remove Node.js version